<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<link type="text/css" rel="stylesheet" media="all" href="resources/css/common.css" />
<title>Projekt követelmények</title>
</head>

<body>
	<h1>Projekt követelmények</h1>
	<ul>
		<li>A projektnek a <span class="kotelezo"> zöld </span> színnel
			és <span class="utolag1k"> árnyalataival </span> jelölt részeket
			hiánytalanul tartalmaznia kell, ezek összességében 25 pontot érnek,
			tehát a projekt teljesítésének szükséges és elégséges feltételét
			képezik. <span class="fontos"> Ha ezekből bármi is hiányzik
				vagy nincs megfelelően megvalósítva, akkor a projekt el lesz
				utasítva! </span> A többi feladat megoldása nem kötelező, ezekből
			választani lehet további legfeljebb 24 pontnyi feladat megoldását (ha
			valaki ennél többet old meg, akkor is 24 pont lesz, mert a
			gyakorlatra összesen legfeljebb 49 pont szerezhető). A megoldásoknak
			Internet Explorerben és Firefoxban is egyaránt jóknak kell lenniük.</li>
		<li>A honlap kódjának átláthatónak kell lenni. A projekt célja,
			hogy a tanult elemek ismeretét felmérje, ezért felesleges elemeket,
			automatikus generálásból eredő túlbonyolított megoldásokat tartalmazó
			honlap el lesz utasítva!</li>
		<li>Logikai formázások helyes használata, azaz ne használjunk
			strukturális tagokat (&lt;h1&gt;, &lt;table&gt; stb.) formázásra és
			stílus tulajdonságokat tagolásra. Táblázat csak a játéktábla
			megrajzolása esetén engedélyezett.</li>
		<li>A projektben használt minden megvalósításnak különböznie kell
			annyira a kurzus példáitól, hogy megállapítható legyen annak
			megértése.</li>
		<li><span class="fontos"> A projekteknek különbözniük kell
				annyira egymástól, hogy ne merüljön fel a másolás gyanúja. Túl
				hasonló projektek esetén javítás jelleggel azok módosítását fogjuk
				kérni. Amennyiben javítás után is túl hasonlók lesznek, mindkét
				projekt el lesz utasítva. </span></li>
		<li>A feladat kiírásától különböző megoldások (más nyelvek,
			szkriptek) nem érnek pontot. Csak a HTML, CSS, JavaScript, AJAX, Java
			Servlet és JSP programok elfogadhatóak.</li>
		<li>A követelmények megvalósításához néhány kisméretű kép is
			elegendő. Ne használjunk sok, nagyméretű képet, mert akkor a projekt
			a stud-os levelező szerverről nem lesz elküldhető.</li>
		<li>A projektet egyetlen zip állományba tömörítve kell elküldeni,
			melynek neve a hallgató neve legyen CsaladnevKeresztnev formában
			(tehát ne tartalmazzon speciális karaktereket).</li>
		<li>További követelmenyek a targy <a
			href="http://www.inf.u-szeged.hu/oktatas/kurzusleirasok/IM253.xml">
				teljesítési feltételeiben </a> vannak leírva, azokat is be kell tartani.
		</li>
	</ul>
	<ol id="feladatok">
		<li><span class="kotelezo"> Személyes adatok </span>
			<ol>
				<li><span class="kotelezo"> név: Balog Zoltán (BAZLAAT.SZE)</span></li>
				<li><span class="kotelezo"> Gazdaságinformatikus MSc, 2011 </span>
				</li>
				<li><span class="kotelezo"> tagozat: nappali </span>
				</li>
				<li><span class="kotelezo"> zoltan.balog.84@gmail.com </span>
				</li>
			</ol></li>
		<li><span class="kotelezo"> Szabványosság </span>
			<ul>
				<li><span class="kotelezo"> A stílus információkat külön
						fájlban kell elhelyezni. </span>
				</li>
				<li><span class="kotelezo"> A projekt minden oldala (a
						program által generáltakat is beleértve) meg kell feleljen az
						XHTML 1.0 szigorú (strict) követelményrendszerének. Ennek
						ellenőrzése a <a href="http://validator.w3.org/">
							http://validator.w3.org/ </a> oldalon lehetséges, ahol az oldal
						további opciók beállítása nélkül is helyes kell legyen. A program
						által generált oldalak ellenőrzése Firefoxban a
						https://addons.mozilla.org/hu/firefox/addon/249 kiegészítő
						telepítése után a Nézet / Oldal forrása menüpontok használatával
						is lehetséges, azonban a fentieknek megfelelő működés érdekében
						ajánlott a soros algoritmust kiválasztani. </span></li>
			</ul></li>
		<li><span class="kotelezo"> Hivatkozások </span>
			<ul>
				<li><span class="kotelezo"> Létre kell hozni egy
						tartalom.html fájlt, mely jelen fájlnak a másolata annyi
						változtatással, hogy az A., B. és C. pontok kivételével minden
						megvalósított követelmény hivatkozássá van alakítva, mely a
						megvalósítást tartalmazó oldalon belül a megvalósítást tartalmazó
						részre mutat.</span></li>
				<li><span class="kotelezo"> Csak a linkké alakított
						követelmények meglétét ellenőrizzük, ezért fontos, hogy a
						követelmény megvalósítása akkor is legyen linkre alakítva, ha nem
						tud az adott oldalon belül pontosan a kívánt helyre mutatni (ez
						esetben ahhoz minél közelebb mutasson), különben nem fog pontot
						kapni.</span></li>
			</ul></li>
		<li><span class="kotelezo"> A játék </span>

			<p class="kotelezo">Egy mancala játékot kell implementálni a
				félév során tanult nyelvek segítségével.</p>
			<p>
				A játékról:<br /> A mancala (arabul منقلة, manqalä) egy gyűjtőnév,
				amely a kétszemélyes táblajátékok egy családját jelöli. A mancala
				sok afrikai és ázsiai ország társadalmában olyan szerepet tölt be,
				mint a sakk a nyugati társadalmakban.<br /> 
				Referenciaként használható játékok: <br /> 
				<a href="http://rocketsnail.com/mancala/game.htm">Mancala Snails</a><br />
				<a href="http://www.aflcio.org/unionshop/games/game_mancala.cfm">Mancala</a>
			</p>
			 <ul class="kotelezo">
				<li>A játékot a játékos és a gép játsza.</li> 
				<li>A játék tábláján mindkét
				játékoshoz tartozik egy-egy sor. Egy sor 6 gödörből áll. Ezen felül
				a sor végén egy nagyobb gödör van a foglyul ejtett kavicsok
				tárolására.</li>
				<li>A játék kezdetén a mindegyik gödörben 4 kavics
				van.</li>
				<li>Minden játéklépés úgy kezdődik, hogy a játékos a saját oldaláról
				kiválaszt egy kavicsokat tartalmazó gödröt. Majd a táblán körbe haladva
				(a választott gödörtől jobbra indulva) minden lyukba elhelyez
				egy-egy kavicsot (a foglyok tárolására szolgáló nagyobb gödörbe is).</li>
				<li>Ha az utolsó kavics a foglyok tárolására szolgáló nagyobb gödörbe kerül, 
				akkor a játékos újra léphet.</li>
				<li>Ha az utolsó kavics a játékos sorában egy üres gödörbe kerül, akkor azt 
				és a szemközti gödörben lévő kavicsokat a foglyok közé rakhatja.</li>
				<li>A játék akkor ér véget, ha az egyik játékos már nem tud lépni.</li>
				<li>A játékot az nyeri, akinél a legtöbb kavics van. A kavicsok száma: 
        foglyul ejtett kavicsok + a saját sorban lévő kavicsok.</li> 
				</ul>
			Követelmények:
			<ol>
				<li><span class="kotelezo"> <a href="CommonServlet"> Álljon a weblap három
						oldalból:</a> </span>
					<ul>
						<li><span class="kotelezo"> <a href="CommonServlet"> Az első oldalon</a> legyen egy
								űrlap, amely bekéri a játékos nevét. Erre azért lesz szükség,
								hogy a játék végén név szerint írjunk neki üzenetet. </span></li>
						<li><span class="kotelezo"> <a href="GameServlet"> A második oldalon </a>legyen a
								játék.</span></li>
						<li><span class="kotelezo"> <a href="end.jsp"> A harmadik oldalon</a>
								közöljük név szerint a játékossal, hogy ki nyert, és írjuk ki,
								mennyi idő alatt teljesítette a játékot a nyertes.</span></li>
					</ul> A játékról részletesebben:</li>
				<li><span class="kotelezo"> <a href="GameServlet">Készítsünk egy oldalt,
						melyen megjelenik a játéktábla (táblázattal, képekkel). </a><br />
						<em>Javaslat</em>:
						A játéktábla egy 2 sorból és 8 oszlopból álló táblázat, 
						az első és utolsó oszlopban a sorok egyesítve szerepelnek, 
						ezek a foglyok tárolására szolgálnak. 
						A cellákban számokkal jelezzük, hogy hány kavics található az adott gödörben.</span>
				</li>
				<li>(3 pont)
				  A számok helyett kavicsokat ábrázoló képeket jelenítsünk meg. 
				  A gödörben annyi kavics képe jelenjen meg, ahány kavics benne van jelenleg, 
				  tehát minden kavics egy külön kép.
				</li>
				<li>(2 pont) Az első oldalon meg lehet kérdezni a játékost,
					hogy hány gödörből álljon a játéktábla és hány kavics legyen bennük a játék elején.</li>
				<li>(2 pont) A játék elején lehessen megadni a minimum kavicsok számát, 
        ami a lépéshez szükséges. Ha egyik játékosnak sincs a sorában olyan gödör, amiben megfelelő számú kavics lenne, akkor vége a játéknak.</li>
        <li>(5 pont) A játékos maga helyezhesse el a kavicsokat a saját sorában. Egy kavics elhelyezése a gödörre való kattintással lehetséges.</li>
				<li><span class="kotelezo"> <a href="GameServlet">A felhasználó a gép ellen
						játszik. </a></span></li>
				<li><span class="kotelezo"> Az algoritmus
						bonyolultságára nem jár plusz pont. </span></li>
				<li><span class="kotelezo"> <a href="GameServlet">A gép mindig a saját sorából választ egy gödröt. </a></span></li>
				<li><span class="kotelezo"> <a href="GameServlet">A felhasználó
						egérkattintással választhat a saját sorából gödröt. A tábla tárolása szerver
						oldalon történjen, a gödrök állapota a teljes oldal újratöltése nélkül
						módosuljon. </a></span></li>
				<li>(1 pont) A gödrökben lévő és a foglyul ejtett kavicsok számának kiírása a tábla mellett.
				 (A számokat a szerveren kell kiszámítani.)</li>
				<li><span class="kotelezo"> <a href="GameServlet">Minden lépés után
						ellenőrizni kell, hogy a következő játékos tud-e még lépni. </a></span></li>
				<li><span class="kotelezo"> <a href="end.jsp">Ha nyert valamelyik játékos,
						a harmadik oldalon írjuk ki, hogy ki nyert, hány kavoccsal és mennyi ideig tartott
						a játék. </a></span></li>
				<li><span class="kotelezo"> Kötelező menetkövetést
						megvalósítani legalább az alábbi lehetőségek egyikével (többel is lehet, de csak az egyikért (a legtöbbet érőért) jár pont): </span>
					<ul>
						<li>(2 pont) rejtett mező segítségével (hidden input tag)</li>
						<li>(5 pont) <a href="end.jsp">url hozzáfűzéssel</a></li>
						<li>(5 pont) javax.servlet.HttpSession objektum
							használatával.</li>
					</ul></li>
				<li>(5 pont) A játék végén állítsunk fel egy rangsort, fájlból
					olvassuk a korábbi játékidőket a játékosok nevével és írassuk ki a
					rangsort, végül mentsük el az új játékidőt is a játékos nevével.</li>
				<li>(1 pont) A gép gondolkodását szimulálva várjunk néhány
					másodpercet a játékos lépése után a gép következő lépésével.</li>
				<li>(0-3 pont) A játék valamely részének JSP-ben való
					megvalósítása.</li>
			</ol></li>
		<li>(0-5 pont) A megvalósítások átláthatósága és minősége.</li>
	</ol>
	<p class="kotelezo">Közzétéve: 2011. 09. 16.</p>
</body>
</html>
